package com.sun.module_category.net

import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

/**
 *@author:sunc
 *@time :2025/7/30 16:05
 *@desc: 描述 仓库请求实例
 * SingletonComponent：适用于在整个应用生命周期中只需要一个实例的场景，例如单例服务或数据库实例。
 *
 * ActivityRetainedComponent：适用于需要跨配置更改保持实例的场景，通常用于 Activity 中。
 *
 * ViewModelComponent：适用于 ViewModel，确保 ViewModel 的依赖项在配置更改时仍然可用。
 * @Module
 * 标记类为依赖提供容器，包含 @Provides（实例生成方法）或 @Binds（接口绑定方法）
 * @InstallIn(SingletonComponent::class)
 * 限定模块作用域为应用级单例，所有依赖实例全局唯一
 * @Provides
 * 用于生成无法通过构造函数注入的实例（如第三方库、Builder模式创建的类）

 */
@Module
@InstallIn(SingletonComponent::class)
class HttpModule {

    @Provides
    fun provideHttpRepository(): HttpRepository = HttpRepository()
}